Storage devices, such as tape devices, may be configured to allow multiple hosts to access the device. In such configurations, it is important to ensure that hosts are prevented from interfering with the data transfer operations of the other hosts. Data integrity can be compromised if one host accesses the device while another host is performing a data transfer.
One method used in the past to protect data transfers is the Reserve & Release method implemented in Small Computer System Interface (SCSI) devices. This methodology requires that the application or driver on the host implement reserve and release commands. A host can be given exclusive access to a device by issuing a reserve command. When the host is finished with the device, it must then issue a release command to relinquish its reservation of the device. However, if the host holding the reservation on the device experiences a failure, it cannot issue the release. Thus, the device remains unnecessarily reserved for that host. The device may need to be reset manually to recover from this state.
The SCSI Persistent ReserveIn and Persistent ReserveOut commands function similarly to the reserve and release commands. However, these commands also allow any host to issue a Persistent Reserve Out command with the Clear service action to remove any reservations. A second host trying to access a device reserved with the Persistent Reserve In command cannot tell if a reserved device is truly being used or if the device is in a bad state because the host holding the reservation on the device has failed. If a data transfer is particularly lengthy, the second host may decide the host holding the reservation has failed and clear the reservation. This would disrupt any data transfers that may be taking place. If the device is a tape drive, the clear could effectively terminate the entire backup process.